package com.lx.information.mapper;

import com.lx.information.domain.InformationJointCase;
import com.lx.information.domain.query.InformationJointCaseQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 共同的案件总Mapper接口
 *
 * @author lx
 * @date 2023-03-31
 */
public interface InformationJointCaseMapper {
    /**
     * 查询共同的案件总
     *
     * @param id 共同的案件总主键
     * @return 共同的案件总
     */
    public InformationJointCase selectInformationJointCaseById(Long id);

    /**
     * 查询共同的案件总列表
     *
     * @param informationJointCase 共同的案件总
     * @return 共同的案件总集合
     */
    public List<InformationJointCase> selectInformationJointCaseList(InformationJointCase informationJointCase);

    /**
     * 新增共同的案件总
     *
     * @param informationJointCase 共同的案件总
     * @return 结果
     */
    public int insertInformationJointCase(InformationJointCase informationJointCase);

    /**
     * 修改共同的案件总
     *
     * @param informationJointCase 共同的案件总
     * @return 结果
     */
    public int updateInformationJointCase(InformationJointCase informationJointCase);

    /**
     * 删除共同的案件总
     *
     * @param id 共同的案件总主键
     * @return 结果
     */
    public int deleteInformationJointCaseById(Long id);

    /**
     * 批量删除共同的案件总
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteInformationJointCaseByIds(Long[] ids);

    String execute(@Param("sql") String sql);

    int updateDataStateByIds(@Param("ids") List<Long> ids, @Param("dataState") String dataState);

    /**
     * 获取指定用户数据
     * @param informationJointCaseQuery
     * @param userList
     * @return
     */
    List<InformationJointCase> selectInformationJointCaseListByAuth(@Param("informationJointCaseQuery") InformationJointCaseQuery informationJointCaseQuery, @Param("userList") List<Long> userList);

    /**
     * 根据bid获取
     * @param bid
     * @return
     */
    InformationJointCase selectInformationJointCaseByBId(@Param("bid") Long bid);
}
